﻿//2730. 找到最长的半重复子字符串
//如果一个字符串 t 中至多有一对相邻字符是相等的，那么称这个字符串 t 是 半重复的 。
//例如，"0010" 、"002020" 、"0123" 、"2002" 和 "54944" 是半重复字符串，
//而 "00101022" （相邻的相同数字对是 00 和 22）和 "1101234883" （相邻的相同数字对是 11 和 88）不是半重复字符串。
//请你返回 s 中最长 半重子字符串的长度。




class Solution {
public:
    int longestSemiRepetitiveSubstring(string s)
    {
        int some = 0, len = 1;
        int begin = 0, end = -1;
        for (end = 1; end < s.size(); end++)
        {
            if (s[end] == s[end - 1] && ++some > 1)
            {
                for (begin++; s[begin] != s[begin - 1]; begin++);
                some = 1;
            }
            len = max(end - begin + 1, len);
        }
        return len;
    }
};